Estas 2 líneas generan la misma salida:
Logger.log(Utilities.formatDate(new Date(), "ET", "yyyy-MM-dd'T'HH:mm:ss'Z'")); Logger.log(Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd'T'HH:mm:ss'Z'"));Producción:
2:20:37 PM Info -> 2022-01-26T19:20:37Z 2:20:37 PM Info -> 2022-01-26T19:20:37ZNo importa la entrada, siempre está convirtiendo la fecha a UTC (probablemente), esto hace imposible imprimir la fecha y la hora correctas.
¿Cuál es la forma correcta de formatear una fecha y hora en Google Scripts?
"ET" no es un nombre de zona horaria aceptado.
Para eso, usaría 'America/New_York'.
La documentación de Apps Script no menciona eso, lo que puede ser frustrante para los que no son desarrolladores. Aquí está la lista de todas las identificaciones de zona horaria
Además, al poner el '' alrededor de la Z, lo trata como una cadena y solo devuelve la fecha con una Z. Sé que eso es lo que está en el ejemplo en la página del script de aplicaciones, pero está mal.
Prueba esto:
Logger.log(Utilities.formatDate(new Date(), "America/New_York", "yyyy-MM-dd'T'HH:mm:ss z")); Logger.log(Utilities.formatDate(new Date(), "America/New_York", "yyyy-MM-dd'T'HH:mm:ss Z")); Logger.log(Utilities.formatDate(new Date(), "America/Los_Angeles", "yyyy-MM-dd'T'HH:mm:ss z")); Logger.log(Utilities.formatDate(new Date(), "America/Los_Angeles", "yyyy-MM-dd'T'HH:mm:ss Z")); Logger.log(Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd'T'HH:mm:ss Z"));